package study.core.rdd.operator

import org.apache.spark.{SparkConf, SparkContext}

/**
 * 转换算子之键值操作groupByByKey操作
 * 将数据源的数据根据 key 对 value 进行分组
 *
 * @author zh
 * @date 2021/5/15 10:47
 */
object TestGroupByKey {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("rddMap")
    val context = new SparkContext(sparkConf)

    // 准备集合
    val list = List(("a",1),("b",2),("a",3),("b",4),("a",5))
    // 创建RDD
    val rdd = context.makeRDD(list, 2)

    // 分组
    val result = rdd.groupByKey()
    result.collect().foreach(println)

    context.stop()

    //(b,CompactBuffer(2, 4))
    //(a,CompactBuffer(1, 3, 5))

  }

}
